package zj.xinxin.mapper.mapper.security;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import zj.xinxin.api.moudle.security.entity.ConsumerRoleEntity;

import java.util.List;
import java.util.Map;

/**
 * @author junzhou
 * @date 2022/3/23 15:01
 * @since 1.8
 */
@Mapper
public interface ConsumerRoleEntityMapper extends BaseMapper<ConsumerRoleEntity> {

    /**
     * 根据角色 Id 查询当前用户的最高权限
     * @param roleId 当前用户的角色 ID
     * @return 用户对应的最高权限
     */
   List<Map<Integer, Integer>> selectByTopRole(int roleId);

    /**
     * 获取当前角色下的所有用户 ID
     * @param roleId 角色 ID
     * @return 所有用户的 ID
     */
    List<Integer> selectConsumerIdList(int roleId);

    /**
     * 获取当前角色下的所有角色 ID
     * @param roleId 当前角色
     * @return 所有的角色 ID
     */
    List<Integer> selectRoleIdList(int roleId);

    /**
     * 根据用户 Id 获取当前用户的最高权限
     * @param consumerId 待查询的用户 Id
     * @return 用户最高权限的 角色 ID
     */
    Integer selectMaxPermissionRoleId(Integer consumerId);

    /**
     * 更新用户角色权限信息
     * @param consumerRole 待更新的用户信息
     * @return 更新是否成功
     */
    Boolean updateConsumerRole(ConsumerRoleEntity consumerRole);

}
